增强学习与量化投资初探
查看之前文章请点击右上角,关注并且查看历史消息
所有文章全部分类和整理,让您更方便查找阅读。请在页面菜单里查找。
几个月前人工智能围棋程序AlphaGo大胜李世石九段,人工智能再一次成为舆论的焦点,就连“深度学习”这样一个专业的概念也被广泛地传播开来。事实上,AlphaGo的主体框架是一个深度增强学习模型。用一个深度神经网络拟合增强学习模型中的Q值(对不起,我也不知道自己在说些什么),完美地将机器学习中的深度学习与增强学习这两个分支结合在一起。假设大家对机器学习以及最优化理论中的套路有一定了解的话,下面我们将进一步探索(深度)增强学习的原理,以及其在量化投资中的应用。
Markov Decision Process(马尔克夫决策过程),是在Markov过程的基础上加入了行动(Action)与回报(Reward)的概念。首先,马尔克夫性就是说未来状态(的分布)只与当前状态有关,而与过去无关。而MDP中,在每种状态下可以采取若干种行动,当前状态与行动共同决定未来状态;并且在每次采取行动之后会获得一个相应的回报。具体而言,一个MDP由{S,A,P,R,γ}这五个部分组成:
S是所有状态(States)构成的集合;
A是所有行动(Actions)构成的集合;
P是转移矩阵,即给出从某一状态&行动之下转移到另一状态的概率;
R是回报(Reward),它是状态(s)与行动(a)的函数R(s,a);
γ是贴现率(搞金融的都懂==),它的存在是为了让我们在对未来所有Reward进行求和的时候不会碰到正无穷。
我们可以认为MDP是对真实世界一个很好的模拟。面对当前时刻的环境,我们可以大致估计自己各种行为对环境的影响,以及这种行为可能带来的即时与远期后果。在此基础上,我们选择一个可以最大化未来所有收益之和的行为,从而转移到下一个状态,并不断重复该过程。这样就可以自然地引入策略(Policy)与价值(Value)的概念。策略π(s)就是S到A的一个映射,即一套完整的相机而动的方案,事先约定在每种状态下采取什么策略。而价值V(s,π)是状态与策略的函数:从状态s开始,一直遵守策略π,那么未来一切收益贴现和的期望就是这个策略的价值。这样一来,所谓的最优策略π*(s)就是价值最大的策略。在此基础上,继续定义最优值V*(s)=V(s,π*),作为状态的函数,V*是执行最优策略时的价值。最优策略与最优值可以用动态规划求解(Bellman Equation,Value/Policy iteration),这里就不展开讨论了。
说了这么多MDP,我们可以暂时考虑下投资这件事情。也许有的同学已经在想:哇MDP的框架简直就是一个投资问题,股票的各种量价数据是当前的State,而投资者的买卖操作是Action,而收益(率)天然就是那个Reward。但问题是,我们并不知道状态之间是如何转移的,也就是说P是未知的。况且,在已知当前状态的条件下,我们也并不知道买卖操作给我们带来的收益是多少。这样就自然而然地引出了下一话题--增强学习。
上文提到Q表有一些弊端,索性直接拟合Q函数,而DeepMind正是使用了一个深度神经网络拟合Q函数,命名为DQN(Deep Q Net)。那么问题来了:神经网络作为一种监督学习,其训练是需要有标签(label)样本的,而这里Q值的标签是什么呢?答案就是之前迭代关系式中更新的Q值。他们的思路就是在更新Q的过程中同时训练DQN的权重W。(这块内容就不深究了,因为并没有搞懂)
尽管RL与投资问题十分贴切,但要真正运用起来还是十分有难度的,以下总结一些问题以及我的思考。
1.状态设定:
目前深度增强学习效果比较好的场景有围棋、Atari游戏、直升机(机器人)等。这些场景下Reward往往只与State相关,例如围棋棋盘当前的状态唯一决定价值,不管棋手走了哪一步到达当前状态。但下一个状态与当前的行动是紧密相关的。相反在股票投资中,我们的买卖策略不大可能影响股票的状态,但却直接影响我们到下一期时的收益。从这个角度讲,投资更像是一个静态问题。有一个办法是将agent当前持有的各种股票数量当作状态的一部分,这样action就可以影响state之间的转换了,从而可以使用DQN中的各种细节处理与技巧。
另外,股票的大部分特征都是连续的变量,需要划分为离散的区间当作状态。模型对各种划分是否robust是一个需要验证的问题。当然这个问题是比较细节的。
2.特征选取:
深度学习有时也称无监督特征学习,正是因为它可以很好地从原始数据中提取有效的features,从而解决了以往机器学习中最大的难点--找feature。但在深度增强学习中,深度网络的作用与在其他地方是有区别的,并不能用来自动地选择、构造特征。所以在用深度增强学习对量化投资过程进行建模时,仍需依靠人工经验以及金融背景选择各种特征(量价关系、技术指标等)。
3.目标函数:
一般而言将每天在股市上的收益当作Reward就是最直接的选择,但这样并不能控制风险。所以也可以选择加入风险度量在目标函数当中,例如Sharp Ratio。但是由于风险是用方差来表示的,很难在每个时间点都给出度量值,因而需要一些处理技巧来改进。
我和几个小伙伴们最近一直在做深度增强学习在量化中的应用,也会持续与大家分享(如在TensorFlow上的代码实现)。第一次写文章,有很多不足,还请各位多多批评指正。
补充阅读:
a. David Silver Reinforcement Learning 课程(优酷)。
b. Stanford CS229 课程网站上有讲义,第12讲是有关增强学习的。
c. 《机器学习》Tom Mitchell,最后一章是关于Q-Learning的。这本书虽然有点老,但内容上还是很丰富的。
后台回复下列关键字,更多惊喜在等着你 【区分大小写】
1.回复每周论文 获取Market Making论文分享
2. 回复matlab量化投资 获取大量源码
3. 回复每周书籍 获取国外书籍电子版
4. 回复文本挖掘 获取关于文本挖掘的资料
5. 回复金融数学 获取金融数学藏书
6. 回复贝叶斯Matlab 获取NBM详解与具体应用
7.回复AdaBoost 获取AdaBoost算法文献、代码、研报
8.回复数据包络分析 获取选股分析源码
9.回复SVD 获取数据预处理之图像处理的方法
【过往文章】
0.【重!磅!干!货!】互联网金融之量化投资深度文本挖掘——附源码文档
3.【Python机器学习】系列五决策树非线性回归与分类(深度详细附源码)
5.【每周书籍干货】国外近期深度学习与机器学习书籍电子版——你知道一本买来好多刀啊!
7.【Python机器学习】系列之从线性回归到逻辑回归篇(深度详细附源码)
8.【Python机器学习】系列之特征提取与处理篇(深度详细附源码)
9.【最强干货】关于文本挖掘的资料(文献,报告,策略,代码)
10.机器学习的前期入门汇总
15.【扎实资料干货分享】Python、研究报告、计量经济学、投资书籍、R语言等!(Book+Video)
17.量化投资修行之路
18.统计套利在股指期货跨期套利中的应用:基于协整方法的估计
19.股指期货跨品种套利交易
26.卷积神经网络反向传播推导
27.深度学习项目
28.混沌分形理论
29.基于技术交易规则的动态模型股票价格(附论文和Matlab源程序)